package com.code2roc.jarmanage.servlet.depoly;

import com.code2roc.jarmanage.db.ProjectDB;
import com.code2roc.jarmanage.depoly.DepolyServiceFactory;
import com.code2roc.jarmanage.model.ProjectDO;
import com.code2roc.jarmanage.model.Result;
import com.code2roc.jarmanage.util.CommonUtil;
import com.code2roc.jarmanage.util.ConvertUtil;
import com.code2roc.jarmanage.util.FileUtil;
import com.code2roc.jarmanage.util.StringUtil;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.IOException;
import java.util.HashMap;

public class GetProjectInfoServlet extends HttpServlet {

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        Result result = Result.okResult();
        HashMap paramMap = CommonUtil.getParamMap(req);
        String projectID = ConvertUtil.convert2String(paramMap.get("projectID"));
        ProjectDO entity = ProjectDB.selectOne(projectID);
        String previewUploadPath = "";
        String previewUploadFileName = "";
        if (StringUtil.isEmpty(entity.getDepolyType())) {
            //jar
            previewUploadPath = entity.getJarPackagePath() + File.separator + "preupload";
            previewUploadFileName = entity.getServiceName() + "_replace.jar";
        } else {
            //war
            previewUploadPath = entity.getJarPackagePath() + File.separator + "webapps" + File.separator + "preupload";
            previewUploadFileName = entity.getServiceName() + "_replace.war";
        }
        FileUtil.initfloderPath(previewUploadPath);
        String filePath = previewUploadPath + File.separator + previewUploadFileName;
        File file = new File(filePath);
        String preFilePath = file.exists() ? filePath : "未上传";
        String status = (new DepolyServiceFactory().CreateDeployService().getStatus(entity.getServiceName()));
        result.add("preFilePath", preFilePath);
        result.add("status", status);
        resp.getWriter().println(result.toString());
    }
}
